package Java.BlackHorse.Thread.Thread3;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadDemo {
    /*
    * 第三种实现方式(特点： 有返回值)
    * 1.创建一个类实现Callable接口
    * 2.重写call方法(有返回值，表示多线程的运行结果)
    * 3.创建对象，表示多线程要执行的任务
    * 4.创建FutureTask对象 作用：管理多线程运行的结果
    * 5.创建Thread类对象并start线程
    * */
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        MyCallable mc = new MyCallable();
        FutureTask<Integer> ft = new FutureTask<>(mc);
        Thread t1 = new Thread(ft);
        t1.start();
        Integer result = ft.get();
        System.out.println(result);
    }
}
